/* @flow */

import { mergeOptions } from '../util/index'
// Vue.mixin 的定义，就是通过mergeOptions把要混入的对象合并到vue的options中
// 由于每个组件的构造函数都会在extend阶段合并 Vue.options 到自己的options中，就相当于每个组件都定义了mixin
export function initMixin (Vue: GlobalAPI) {
  Vue.mixin = function (mixin: Object) {
    this.options = mergeOptions(this.options, mixin)
    return this
  }
}
